{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# XGBoost Parameter"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.直接调用xgboost内嵌的cv寻找最佳的参数n_estimators"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n",
      "  \"This module will be removed in 0.20.\", DeprecationWarning)\n"
     ]
    }
   ],
   "source": [
    "# import tool kit\n",
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# read data\n",
    "dpath = './data/'\n",
    "train = pd.read_csv(dpath + 'RentListingInquries_FE_train.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "      <th>price_bathrooms</th>\n",
       "      <th>price_bedrooms</th>\n",
       "      <th>room_diff</th>\n",
       "      <th>room_num</th>\n",
       "      <th>Year</th>\n",
       "      <th>Month</th>\n",
       "      <th>Day</th>\n",
       "      <th>...</th>\n",
       "      <th>walk</th>\n",
       "      <th>walls</th>\n",
       "      <th>war</th>\n",
       "      <th>washer</th>\n",
       "      <th>water</th>\n",
       "      <th>wheelchair</th>\n",
       "      <th>wifi</th>\n",
       "      <th>windows</th>\n",
       "      <th>work</th>\n",
       "      <th>interest_level</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.5</td>\n",
       "      <td>3</td>\n",
       "      <td>3000</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>750.000000</td>\n",
       "      <td>-1.5</td>\n",
       "      <td>4.5</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>24</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>5465</td>\n",
       "      <td>2732.5</td>\n",
       "      <td>1821.666667</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>12</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2850</td>\n",
       "      <td>1425.0</td>\n",
       "      <td>1425.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>3275</td>\n",
       "      <td>1637.5</td>\n",
       "      <td>1637.500000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>18</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>4</td>\n",
       "      <td>3350</td>\n",
       "      <td>1675.0</td>\n",
       "      <td>670.000000</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 228 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   bathrooms  bedrooms  price  price_bathrooms  price_bedrooms  room_diff  \\\n",
       "0        1.5         3   3000           1200.0      750.000000       -1.5   \n",
       "1        1.0         2   5465           2732.5     1821.666667       -1.0   \n",
       "2        1.0         1   2850           1425.0     1425.000000        0.0   \n",
       "3        1.0         1   3275           1637.5     1637.500000        0.0   \n",
       "4        1.0         4   3350           1675.0      670.000000       -3.0   \n",
       "\n",
       "   room_num  Year  Month  Day       ...        walk  walls  war  washer  \\\n",
       "0       4.5  2016      6   24       ...           0      0    0       0   \n",
       "1       3.0  2016      6   12       ...           0      0    0       0   \n",
       "2       2.0  2016      4   17       ...           0      0    0       0   \n",
       "3       2.0  2016      4   18       ...           0      0    0       0   \n",
       "4       5.0  2016      4   28       ...           0      0    1       0   \n",
       "\n",
       "   water  wheelchair  wifi  windows  work  interest_level  \n",
       "0      0           0     0        0     0               1  \n",
       "1      0           0     0        0     0               2  \n",
       "2      0           0     0        0     0               0  \n",
       "3      0           0     0        0     0               2  \n",
       "4      0           0     0        0     0               2  \n",
       "\n",
       "[5 rows x 228 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train = train['interest_level']\n",
    "train = train.drop(['interest_level'], axis=1)\n",
    "X_train = np.array(train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Variable Identification\n",
    "使用老师提供的特征工程，主要超参数调优"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "StratifiedKFold(n_splits=5, random_state=3, shuffle=True)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# cross validation\n",
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)\n",
    "kfold"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "采用默认参数，进行观察"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "def modelfit(alg, X_train, y_train, cv_folds=None, early_stopping_rounds=10):\n",
    "    xgb_params = alg.get_xgb_params()\n",
    "    xgb_params['num_class'] = 3\n",
    "    \n",
    "    xgbtrain = xgb.DMatrix(X_train, label=y_train)\n",
    "    cvresult = xgb.cv(xgb_params, xgbtrain, num_boost_round=alg.get_params()['n_estimators'], folds=list(cv_folds.split(X_train,y_train)),\n",
    "                     metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "#     cvresult = xgb.cv(xgb_param, xgbtrain, num_boost_round=alg.get_params()['n_estimators'], folds =cv_folds,\n",
    "#              metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "    cvresult.to_csv('1_nestimators.csv', index_label = 'n_estimators')\n",
    "    # 最佳参数\n",
    "    n_estimators = cvresult.shape[0]\n",
    "    alg.set_params(n_estimators = n_estimators)\n",
    "    alg.fit(X_train, y_train, eval_metric='mlogloss')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "xgb1 = XGBClassifier(learning_rate=0.1,\n",
    "                     n_estimators=1000, \n",
    "                     max_depth=5, \n",
    "                     min_child_weight=1, \n",
    "                     gamma=0, \n",
    "                     subsample=0.3, \n",
    "                     colsample_bytree=0.8, \n",
    "                     colsample_bylevel=0.7, \n",
    "                     objective='multi:softprob', \n",
    "                     seed=3)\n",
    "modelfit(xgb1, X_train, y_train, cv_folds=kfold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a14f8fef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('1_nestimators.csv')\n",
    "        \n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(0, cvresult.shape[0])\n",
    "        \n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators4_1.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1oAAANICAYAAADevJ4OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XeYFMXWx/HfIWdUUBBFMAfMESUaMHvVawAx55zDaxZz\nxpwD5qxXRYygmMCACoqACUEkG8hhCfX+0T1dtcPOsrv07mz4fp5nnj3V09NTvbvonK2qU+acEwAA\nAAAgPbXy3QEAAAAAqG5ItAAAAAAgZSRaAAAAAJAyEi0AAAAASBmJFgAAAACkjEQLAAAAAFJGogUA\nAAAAKSPRAgAAAICUkWgBAAAAQMpItAAA1YaZPWFm4/LdDwAASLQA1Bhm9oyZLTCzDYp47mIzc2a2\nb9bx+mZ2ppl9Zmb/mlmBmU0yszfN7DAzqx2c2z6+RviYZWbDzeyM8Nx8MbPTzOyYfPdjRZhZGzPr\nY2Zb5rsvITPrbWbn5LsfFcnMuse/5wdXgr5k/v1dkO++AIAk1cl3BwCgAp0naW9JD0raJXPQzNaW\ndKWkV51zbwXHV5X0jqRtJL0n6TpJ/0hqLWk3Sc9JWk/StVnv87ykt+O4efye90hqJ+nCtG+qlE6T\n9JekJ/LcjxXRRtJVksZJGp713InK3x8Re0vaVNKdeXp/AEAlQqIFoMZwzk0zs/+T9LCZHe2cezJ+\n6n5JiySdnfWSpyVtJekg59xrWc/daGbbStqwiLf61jn3TKZhZvdL+lLRB/F8J1rVmnNuUb77kCYz\nqyOplnOuIN99AQCUDlMHAdQ0j0r6XNJtZtbCzHpJ2lPS5c65iZmTzGxHSXtIeriIJEuS5Jwb5px7\ndnlv6JxzkqZKWpz9XDyV70czWxhPSbzPzFYq4rxDzOwbM5tvZn/F0yDXyDqntZn1M7M/4+tNNrM3\nzKx9/Pw4SR0kdQumNg7O1e9wKpaZnWRmv8XX/drMtlvefRdxvfpmdrWZ/RpfZ4KZ3WJm9bPO6xFP\n1ZxhZnPM7CczuyF+rrukr+NT+wX3cUz8fKE1Wln3cLqZjTWzeWb2vpm1tcgV8fdsfvz9WiWrP/ub\n2YD457Mw/j5ckTVtdLCkfSS1C/oU9mM1M3vMzKbG01dHmNnRxXy/zzGz3yQtlLRJ/PyZ8e/KPIum\nsQ4zs97FfL9bmdliM7uqiOc2jN/rjLhd18yuMrNf4v79Hf8MeuS6fmmYWWMzuz3+mS+Mf6YXmJll\n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\nmP0/FD/0Xg0Y+LIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a14f8f518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('1_nestimators.csv')\n",
    "\n",
    "cvresult = cvresult.iloc[100:]\n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(100,cvresult.shape[0]+100)\n",
    "        \n",
    "fig = pyplot.figure(figsize=(10, 10), dpi=100)\n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators_detail.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "第二步调整树的参数 max_depth & min_child_weight，接2_1"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
